package main

import "fmt"

// 定义一个Sayer的接口
type Animal interface {
	Say()
}

// 定义两个结构体Cat和Dog
type Cat struct{}
type Dog struct{}

// Dog实现了Sayer接口
func (d Dog) Say() {
	fmt.Println("汪汪")
}

// Cat实现了Sayer接口
func (c Cat) Say() {
	fmt.Println("喵喵")
}

func main() {
	c := Cat{}
	c.Say()
	d := Dog{}
	d.Say()

	var a Animal = c
	a.Say()

	var b Animal = c
	b.Say()

}
